Portable information terminals such as smartphones, as well as typical operating systems (OSs) for desktop personal computers (PCs), allow users to freely download and install a wide variety of applications. It is therefore difficult to know, in advance, the operating frequency of a central processing unit (CPU) desired by every application. Likewise, it is difficult for application developers to know to what extent the CPU performance is used in each of a wide variety of portable information terminals. This makes it impossible for the application developers to determine the operating frequency of the CPU in a portable information terminal based on the operating frequency of the CPU used for every application.
Control of the operating frequency of a CPU (hereinafter sometimes referred to as “CPU operating frequency control”) in a multitasking OS for a desktop PC will be described.
First, the user or middleware specifies a CPU operating frequency policy (an algorithm for changing the operating frequency of a CPU, the upper limit and the lower limit of the operating frequency, and the durations of the algorithm, upper limit, and lower limit) and instructs the OS kernel to control the operating frequency. The OS kernel determines a target value for the operating frequency of the CPU, on the basis of CPU utilization and the operating frequency policy, and causes a control circuit driver in the CPU to carry out control of the operating frequency.
Related-art CPU operating frequency control, however, is carried out after the CPU utilization is observed, and therefore there is a long period of time between the occurrence of some load and a rise in the operating frequency of the CPU. For this reason, in cases where an instantaneously high throughput is desired, the feel the user experiences when performing operations sometimes deteriorates.
Furthermore, in the CPU operating frequency control module, if the rise in the operating frequency of the CPU is delayed, problems described below arise. For example, in the case of clearing the sleep mode of a portable information terminal, first, the OS kernel sets a timer for inhibiting sleep for a predetermined period of time, and subsequently the middleware and the application perform setting for inhibition of sleep before the timer expires. However, a large amount of processing occurs in clearance of the sleep mode. If control for raising the operating frequency of the CPU performed by the CPU operating frequency control module is delayed, the CPU does not completely perform a large amount of processing that has started, and thus a timer for inhibition of sleep of the OS kernel sometimes expires before the sleep mode is cleared. That is, although the power button is pressed down in order to return the portable information terminal from the sleep mode, the portable information terminal sometimes transitions to the sleep mode again before the sleep mode is cleared. Even when the portable information terminal does not transition to the sleep mode, it sometimes takes a significant amount of time from pressing down of the power button until the portable information terminal becomes practically operable. This sometimes impairs the usability of the device by the user.
In order to solve such a problem, a scheme called a boost exists. The boost is a scheme in which the lower limit of the operating frequency, which is a control parameter of the CPU operating frequency control module, is changed from the outside of the CPU operating frequency control module, so that the operating frequency of the CPU is instantaneously changed to a new operating frequency equal to or larger than the lower limit. When the boost is used, upon occurrence of an event for which an instantaneously high throughput is desired, the lower limit of the operating frequency of the CPU rises suddenly and temporarily, so that the event may be reliably processed.
Japanese Laid-open Patent Publication No. 2010-39791 discloses an example of the related art.